<?php   // $Id: categorie_choix.php 347 2012-05-07 09:11:55Z pcoustillas $ ?>
<?php   //cette page melange javascript et php, elle est donc assez déliquate à modifier.

require_once("include/verif.php");
require_once("include/config/var.php");
require_once("include/utils.php");

function ligne_option($article,$prix_htva,$uni,$taux_tva)
{
	//cette fonction construit la ligne d'option avec le nb d'espace qui va bien


	$retour  = "$article " . add_space(20-strlen($article));
	$retour .= montant_financier($prix_htva) . " / " . $uni . add_space(15 - strlen(montant_financier($prix_htva)) - strlen($uni));
	$retour .= montant_taux($taux_tva);

	return $retour;
}

function combo_choix_categorie ($frm="formu2",$ro="",$arti=0)
{
	//$frm est le nom du frm dans lequel il faut ajouter les combos. (formu2 est le nom utiliser en général)
	//$ro permet d'indiquer si les combo doivent etre en readonly ou non
	//$arti indique l'article selectionné par défaut. c'est un numero

	static $appel_cette_func; //permet de ne pas réinclure le code javascript si la fonction est appeller plusieurs fois dans la meme page
	$appel_cette_func += 1;

	global $devise,$conf_xml,$tblpref;

	$euro= '€';
	$devise = preg_replace('/&euro;/', $euro, $devise);
	

	if ($conf_xml->categorie->categorie_active=="oui")
	{
	//Afficher deux combos, une pour les articles, une pour les catégories
	?>

		<?php
			
		$sql_cat = "SELECT * FROM ${tblpref}categorie ORDER BY categorie";
		$res_cat = mysql_query($sql_cat) or die("Erreur SQL !<br/>$sql_cat<br/>" . mysql_error());
		
		//cette boucle rempli la combo des categories.
		// etant donne qu'on a besoin des catégories pour les liées aux articles, on garde les infos dans un tableaux
		?>
		<select <?php echo $ro==""?'class="option"':'class="champ_modif_ro" disabled="disabled"' ?> name="categorie" onchange="javascript:change_cat(this.value,'<?php echo $frm ?>')">
		<?php
		while($tab_cat = mysql_fetch_array($res_cat))
		{
			$cat[]=$tab_cat['id_cat'];
			echo "<option value='" . $tab_cat['id_cat'] . "' ";
			if ($arti != 0)
			{
				//si un article à été selectionner il faut le selectioner lui et sa categorie.
				// de quel catégorie est cette article ? 
				$sql_quel_cat = "SELECT cat,article FROM ${tblpref}article WHERE num='$arti'";
				$res_quel_cat = mysql_query($sql_quel_cat) or die('Erreur SQL !<br/>$sql_quel_cat<br/>'.mysql_error());
	
				$cat_default=mysql_result($res_quel_cat,0,"cat");
				if ($cat_default == $tab_cat['id_cat'])
				{
					echo "selected='selected'";
				}
			} else {
				if (!isset($cat_default))
				{
					//si pas d'article par default la premiere categorie devient la categorie par default
					$cat_default=$tab_cat['id_cat'];
				}
			}
			echo ">" . $tab_cat['categorie'] . "</option>";
		}
		//echo "<option value='0' >divers</option>";
		//$cat[]="divers";
	?>
		</select>
		
		<?php

		

		//au premier appel on construit le code javascript car Il ne doit etre construit qu'une fois
		if ($appel_cette_func == 1) 
		{
			echo "<script type='text/javascript'>\n";
			echo "var article = new Array;\n";
			foreach ($cat as $indice_cat => $num_cat)
			{
				$sql_art="SELECT * FROM `${tblpref}article` WHERE cat = $num_cat and actif != 'non'";
				echo "article['$num_cat'] = new Array\n";
				$res_art = mysql_query($sql_art) or die("Erreur Selection article !<br/>$sql_art<br/>".mysql_error());
				$compteur_cat=0; //utiliser surtout par le javascript ne correponds pas au numéro de categorie.
				
				while ($tab_article = mysql_fetch_array($res_art))
				{
					$num_article=$tab_article["num"];
					$article=  addslashes($tab_article['article']);
					$prix_htva=$tab_article['prix_htva'];
					$uni=$tab_article['uni'];
					$taux_tva=$tab_article['taux_tva'];
					$nom_article=ligne_option($article,$prix_htva,$uni,$taux_tva);
					//$nom_article=str_replace("&","&amp;",$nom_article);
					echo "article['$num_cat']['$compteur_cat'] = new Array($num_article, '$nom_article');\n";
	
					$compteur_cat=$compteur_cat+1;
				}
			}

			echo "</script>";
		}
		?>

		<?php //la combo des articles ?>
		<select style="font-family:courier new" <?php echo $ro==""?'class="option"':'class="champ_modif_ro" disabled="disabled"' ?> name="article" >

		<?php

		foreach ($cat as $indice_cat => $num_cat) //pour chaque numero de categorie
		{
			$sql_art="SELECT * FROM `${tblpref}article` WHERE cat = $num_cat and actif != 'non'";
			$res_art = mysql_query($sql_art) or die("Erreur Selection article !<br/>$sql_art<br/>".mysql_error());

			while ($tab_article = mysql_fetch_array($res_art))
			{
				$num_article=$tab_article["num"];
				$article=  addslashes($tab_article['article']);
				$prix_htva=$tab_article['prix_htva'];
				$uni=$tab_article['uni'];
				$taux_tva=$tab_article['taux_tva'];
				$nom_article=ligne_option($article,$prix_htva,$uni,$taux_tva);


				if ($num_cat == $cat_default) //cat_default provient soit de la premiere cat soit de la cat liée à l'article passé en param
				{
					echo "<option value='$num_article' ";
					if ($arti != 0 && $arti == $num_article) 
					{
						echo "selected='selected'";
					}
					echo ">$nom_article</option>";
				}

			}

		}

		?>
		</select>
		<?php
		if ($appel_cette_func == 1) //permet de ne pas réinclure le code javascript si la fonction est appeller plusieurs fois dans la meme page
		{
		?>
			<script type="text/javascript">
				function change_cat(cat,frm)
				{
					//alert(frm);
					//vider la combo client avant de la remplir.
					taille_combo=document[frm].elements["article"].length;
					for (i=taille_combo-1; i>=0; i--)
					{
						document[frm].elements["article"].options[i]=null;
					}
		
					for (i=article[cat].length-1 ; i>=0; i--)
					{
						var newOpt = document[frm].elements["article"].appendChild(document.createElement("OPTION" ));
						newOpt.innerHTML = article[cat][i][1];
						newOpt.value = article[cat][i][0];

						//ancienne méthode 
						//new_option = new Option(article[cat][i][1],article[cat][i][0]);
						//document[frm].elements["article"].options[document[frm].elements["article"].length]=new_option;
					}
				}
			</script>
		
		<?php
		}

	} else {
	//l'utlisateur n'utilise pas les catégories
	?>

		<select style="font-family:courier new" <?php echo $ro==""?'class="option"':'class="champ_modif_ro" disabled="disabled"' ?> name='article'>
			<?php
				$rqSql1 = "SELECT num, article, prix_htva,taux_tva, uni FROM ${tblpref}article WHERE actif != 'non' ORDER BY article,prix_htva";
				$result = mysql_query( $rqSql1 ) or die("erreur sql selection des articles.$rqSql1");
				while ( $row = mysql_fetch_array($result))
				{
					$num = $row["num"];
					$article = $row["article"];
					$prix_htva = $row["prix_htva"];
					$uni = $row["uni"];
					$taux_tva=$row['taux_tva'];
					?>
					<option value='<?php echo $num; ?>' <?php if ($arti != 0 && $arti == $num)	echo "selected='selected'" ?> >
						<?php echo ligne_option($article,$prix_htva,$uni,$taux_tva) ?>
					</option>
				<?php
				}
			?>
		</select>
	<?php
	}

}

?>


